XML Schema命名空间
XML 命名空间 写在前面
XML 有两种,分别是微软和W3C的版本。可以从其命名空间直接区分
这里我们主要讨论的是W3C版本,实际上两者差别并不是很大。
在中
<xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema"
xmlns="http://www.jnu.edu.cn/namespace/stu"
targetNamespace="http://www.jnu.edu.cn/namespace/stu"
elementFormDefault="qualified">
这段代码是W3C版本下的命名空间的声明。下面我们逐个介绍这个根元素各个属性的含义。
xmlns
这个指出此文档的命名空间,其中xsd是前缀,在后续的代码中用xsd来代替这个命名空间。
当没有前缀的时候表示该命名空间是默认的命名空间,同时,标准的命名空间不可以写成:
其次,可以存在多个其他的命名空间,也可以没有。但是标准的命名空间必须要有,且只能有一个。如参考的例子中:
这个指出本文档的命名空间,相当于自己的名字一样,和其中一个xmlns的值相同。可以没有这个属性,表示当前没有命名空间。
引用自
1、在xml中,所有引用xsd的全局的元素都必须加上命名空间的前缀(例如xmlns:aa=,全局元素都得加上aa)。
2、非全局的元素当设置为时,必须添加命名空间的前缀。
3、非全局的元素当设置为时,不必也不能添加前缀。
在XML实例文档中
XML文档要引用需要加入下列关键语句,参考上个例子,假设根元素是stu,保存之后是C:\.xsd
<stu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.jnu.edu.cn/namespace/stu"
xsi:schemaLocation=“file://C:/example.xsd”>
xmlns
这里的xmlns和中的不一样,这里的xmlns指出XML的实例命名空间,也就是实现和的对接。
同样的,需要一个标准实例空间:xmlns:xsi=””
该命名空间申明XML实例文档愿意遵循的实例规范。
xmlns=””这个指出该实例文档要引用的命名空间,是真实有用的。
和
这两个属性分别指出一个有命名空间的和无命名空间的的位置。这个属性要跟实际的中有没有命名空间相对应。比如我们上个例子的就是有命名空间的,于是在xml实例文档中用了属性。当然也可以指定多个有名和无名命名空间,例如下面这个:
<booklist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="book2Namespace.xsd"
xmlns:crazy="http://www.crazyit.org/crazy"
xmlns:crazyitnet="http://www.crazyit.net.cn"
xsi:schemaLocation="http://www.crazyit.org/crazy/crazy.xsd
http://www.crazyit.net.cn/crazyitnet.xsd">
booklist>
400电话办理